﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using EmpleadosSOAPServices.Dominio;
using EmpleadosSOAPServices.Exceptions;

namespace EmpleadosSOAPServices
{
    [ServiceContract]
    public interface IEmpleados
    {
        [OperationContract]
        [FaultContract(typeof(EmpleadoException))]
        Empleado CrearEmpleado(Empleado empleadoACrear);
        [OperationContract]
        Empleado ObtenerEmpleado(int codigo);
        [OperationContract]
        [FaultContract(typeof(EmpleadoException))]
        Empleado ModificarEmpleado(Empleado empleadoAModificar);
        [OperationContract]
        void EliminarEmpleado(int codigo);
        [OperationContract]
        List<Empleado> ListarEmpleados();
        [OperationContract]
        Empleado ObtenerEmpleadoDisponible(string cargo);
        [OperationContract]
        Empleado ObtenerUnidadAsignaEmpleado(int IdUnidad);
        [OperationContract]
        [FaultContract(typeof(EmpleadoException))]
        List<Empleado> ListarEmpleadosFiltros(Empleado empleadofiltro);
    }
}
